#include "btform.h"
#include "ui_btform.h"


BtForm::BtForm(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::BtForm)
{
    ui->setupUi(this);

    // 隐藏lineBox控件
    ui->lineBox->hide();

//    // 设置line1的动画效果
//    line1Animal = new QPropertyAnimation(ui->line1, "geometry", this);
//    line1Animal->setDuration(1500);
//    line1Animal->setKeyValueAt(0, QRect(5, 10, 3, 15));  // 根据ui->line1的geometry属性设置(5,0,3,25)
//    line1Animal->setKeyValueAt(0.2, QRect(5, 0, 3, 25));
//    line1Animal->setKeyValueAt(0.7, QRect(5, 25, 3, 0));
//    line1Animal->setKeyValueAt(1, QRect(5, 10, 3, 15));
//    line1Animal->setLoopCount(-1);
//    line1Animal->start();

//    // 设置line2的动画效果
//    line2Animal = new QPropertyAnimation(ui->line2, "geometry", this);
//    line2Animal->setDuration(1500);
//    line2Animal->setKeyValueAt(0, QRect(13, 25, 3, 0));  // (13,0,3,25)
//    line2Animal->setKeyValueAt(0.5, QRect(13, 0, 3, 25));
//    line2Animal->setKeyValueAt(1, QRect(13, 25, 3, 0));
//    line2Animal->setLoopCount(-1);
//    line2Animal->start();

//    // 设置line3的动画效果
//    line3Animal = new QPropertyAnimation(ui->line3, "geometry", this);
//    line3Animal->setDuration(1500);
//    line3Animal->setKeyValueAt(0, QRect(21, 15, 3, 10));  // (21,0,3,25)
//    line3Animal->setKeyValueAt(0.3, QRect(21, 0, 3, 25));
//    line3Animal->setKeyValueAt(0.8, QRect(21, 25, 3, 0));
//    line3Animal->setKeyValueAt(1, QRect(21, 15, 3, 10));
//    line3Animal->setLoopCount(-1);
//    line3Animal->start();

//    // 设置line4的动画效果
//    line4Animal = new QPropertyAnimation(ui->line4, "geometry", this);
//    line4Animal->setDuration(1500);
//    line4Animal->setKeyValueAt(0, QRect(29, 0, 3, 25));  // (29,0,3,25)
//    line4Animal->setKeyValueAt(0.5, QRect(29, 25, 3, 0));
//    line4Animal->setKeyValueAt(1, QRect(29, 0, 3, 25));
//    line4Animal->setLoopCount(-1);
//    line4Animal->start();
}

BtForm::~BtForm()
{
    delete ui;
}

void BtForm::setIconAndText(const QString &btIcon, const QString &btText, int id)
{
    // 设置按钮的图标
    ui->btIcon->setPixmap(QPixmap(btIcon));

    // 设置按钮文本
    ui->btText->setText(btText);

    // 将按钮和QQMusic中的Page页面进行关联
    pageId = id;
}

int BtForm::getPageId() const
{
    return pageId;
}

void BtForm::clearBackground()
{
    ui->btStyle->setStyleSheet("#btStyle{ border-radius: 10px; background-color: none; } #btStyle:hover { background-color: rgb(228, 232, 236); }");
}

void BtForm::showAnimal()
{
    // 显示lineBox控件
    ui->lineBox->show();
}

void BtForm::hideAnimal()
{
    // 隐藏lineBox控件
    ui->lineBox->hide();
}

void BtForm::mousePressEvent(QMouseEvent *event)
{
    (void)event;

    // 1.按钮按下后，修改其背景颜色
    ui->btStyle->setStyleSheet("#btStyle{ border-radius: 10px; background-color: rgb(223, 225, 228); }");

    // 2.按钮按下后，需要切换bodyRight中的Page页面
    // 发送信号给主界面，由主界面来负责切换
    emit btClicked(pageId);
}
